﻿/*
三个参数
file：一个是文件(类型是图片格式)，
w：一个是文件压缩的后宽度，宽度越小，字节越小
objDiv：一个是容器或者回调函数
photoCompress()
 */
var xhr;
var category = getParam("category");
var call = getParam("call");
var folder = getParam("folder", "common");
var index = 1;

//上传文件方法
function UpladFile() {
	
	selectFileImage(document.getElementById("file"));
 
	/**
	var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
    var url = "后台图片上传接口"; // 接收上传文件的后台地址 

    var form = new FormData(); // FormData 对象

    if(fileObj.size/1024 > 1025) { //大于1M，进行压缩上传
        photoCompress(fileObj, {
            quality: 0.2
        }, function(base64Codes){
            //console.log("压缩后：" + base.length / 1024 + " " + base);
            var bl = convertBase64UrlToBlob(base64Codes);
            form.append("file", bl, "file_"+Date.parse(new Date())+".jpg"); // 文件对象
            xhr = new XMLHttpRequest();  // XMLHttpRequest 对象
            xhr.open("post", url, true); //post方式，url为服务器请求地址，true 该参数规定请求是否异步处理。
            xhr.onload = uploadComplete; //请求完成
            xhr.onerror =  uploadFailed; //请求失败

            xhr.upload.onprogress = progressFunction;//【上传进度调用方法实现】
            xhr.upload.onloadstart = function(){//上传开始执行方法
                ot = new Date().getTime();   //设置上传开始时间
                oloaded = 0;//设置上传开始时，以上传的文件大小为0
            };

            xhr.send(form); //开始上传，发送form数据
        });
    }else{ //小于等于1M 原图上传
        form.append("file", fileObj); // 文件对象
        xhr = new XMLHttpRequest();  // XMLHttpRequest 对象
        xhr.open("post", url, true); //post方式，url为服务器请求地址，true 该参数规定请求是否异步处理。
        xhr.onload = uploadComplete; //请求完成
        xhr.onerror =  uploadFailed; //请求失败

        xhr.upload.onprogress = progressFunction;//【上传进度调用方法实现】
        xhr.upload.onloadstart = function(){//上传开始执行方法
            ot = new Date().getTime();   //设置上传开始时间
            oloaded = 0;//设置上传开始时，以上传的文件大小为0
        };

        xhr.send(form); //开始上传，发送form数据
    }
	 
	 */
}

//上传成功响应
function uploadComplete(evt) {
    //服务断接收完文件返回的结果
    var data = evt.target.responseText;

    if (data.indexOf("errorUpload_") != -1) {
        top.layerMessage(data.split("_")[1], 2, 2);
        $(".fileName").html("");
        $(".uploadData").html("");
        $(".uploadify-progress-bar").css({width: "0%"})
        $("#uploadify-queue").hide();
        $(".upload-item").find(".file" + index).remove();
        return false;
    }

    var url = data.split("|")[0];
    var fileName = data.split("|")[1];
    var Icon = data.split("|")[2];
    var size = data.split("|")[3];

    $(".uploadData").html("- 上传完毕");// - 上传完毕
    $(".uploadify-progress-bar").css({width: "100%"})

    $(".fileName").html("");
    $(".uploadData").html("");
    $(".uploadify-progress-bar").css({width: "0%"})
    $("#uploadify-queue").hide();

    var json = {};
    json["fileName"] = fileName;
    json["filePath"] = url;
    json["category"] = category;
    json["icon"] = Icon;
    json["fileSize"] = size;
    json["deleteMark"] = 0;

    index++;

    if (call != 'undefined' && call != undefined && call) {
        //回调自己独立的业务
        parent.uploadCallback(json);
    } else {
        parent.receiveSuccessUpload(json);
    }
}


//上传失败
function uploadFailed(evt) {
    alert("上传失败！");
}

//取消上传
function cancleUploadFile(){
    xhr.abort();
}

//上传进度实现方法，上传过程中会频繁调用该方法
function progressFunction(evt) {
    // event.total是需要传输的总字节，event.loaded是已经传输的字节。如果event.lengthComputable不为真，则event.total等于0
    if (evt.lengthComputable) {//
        //progressBar.max = evt.total;
        //progressBar.value = evt.loaded;
        var total = Math.round(evt.loaded / evt.total * 100) + "%";
        $(".uploadData").html(" - " + total);// - 上传完毕
        $(".uploadify-progress-bar").css({width: total})
    }

    /*var time = document.getElementById("time");
    var nt = new Date().getTime();//获取当前时间
    var pertime = (nt-ot)/1000; //计算出上次调用该方法时到现在的时间差，单位为s
    ot = new Date().getTime(); //重新赋值时间，用于下次计算
    var perload = evt.loaded - oloaded; //计算该分段上传的文件大小，单位b
    oloaded = evt.loaded;//重新赋值已上传文件大小，用以下次计算
    //上传速度计算
    var speed = perload/pertime;//单位b/s
    var bspeed = speed;
    var units = 'b/s';//单位名称
    if(speed/1024 > 1){
        speed = speed /  1024;
        units = 'k/s';
    }
    if(speed/1024 > 1){
        speed = speed / 1024;
        units = 'M/s';
    }
    speed = speed.toFixed(1);
    //剩余时间
    var resttime = ((evt.total - evt.loaded) / bspeed).toFixed(1);
    percentageDiv.innerHTML = percentageDiv.innerHTML + '，' + speed+units + '，剩余：' + resttime + 's';
    */
}

function uploadFile (file) {
    var url = "/_uploadDoc"; // 接收上传文件的后台地址
    var form = new FormData(); // FormData 对象
    form.append("file", file, file.name); // 文件对象
    form.append("folder", folder); // 文件对象
    form.append("category", category); // 文件对象
    xhr = new XMLHttpRequest();  // XMLHttpRequest 对象
    xhr.open("post", url, true); //post方式，url为服务器请求地址，true 该参数规定请求是否异步处理。
    xhr.onload = uploadComplete; //请求完成
    xhr.onerror =  uploadFailed; //请求失败

    xhr.upload.onprogress = progressFunction;//【上传进度调用方法实现】
    xhr.upload.onloadstart = function(){//上传开始执行方法
        ot = new Date().getTime();   //设置上传开始时间
        oloaded = 0;//设置上传开始时，以上传的文件大小为0
    };
    xhr.send(form); //开始上传，发送form数据
}

function uploadFiles() {
  	return document.getElementById("file").click();
}

function selectFiles(fileObj) {
	var file = fileObj.files['0']; 
	if (file) {
        var size = (file.size / 1024 / 1024).toFixed(2) + "M";
        var fileName = file.name;
	    $(".fileName").html(fileName + "(" + size + ")");

        var png = "/admin/images/file_extension_doc.png";
        if (fileName.endWith("pdf")) {
            png = "/admin/images/file_extension_pdf.png";
        }

        //显示文件
        var strHtml =
        '<tr class="file' + index + '">' +
            '<td style="width: 16px;">' +
                '<img src="' + png + '">' +
            '</td>' +
            '<td style="width: 400px;padding-left: 10px;">' +
                '<div id="divFileName">' + fileName + '</div>' +
            '</td>' +
            '<td style="width: 70px;">' + size + '</td>' +
            '<td title="上传成功" style="width: 26px;">' +
                '<img src="/admin/images/accept.png">' +
            '</td>' +
        '</tr>';
        $(".fileList").after(strHtml);
        $("#uploadify-queue").show();
        $(".drag-tip").hide();
        uploadFile(file);
	}
}


